For example, a rewrite control system for an on-board program disclosed in Patent Literature 1 includes a rewrite-dedicated server and a construction machine communicable with the rewrite-dedicated server.
The rewrite-dedicated server receives vehicle-state data from the construction machine, and determines whether a condition allowing rewrite of a program (hereinafter, referred to as “rewrite condition”) is satisfied based on the receipt vehicle-state data. When determining that the rewrite condition is satisfied, the server transmits a renewal program to the construction machine.
On the other hand, the construction machine includes a flash memory for storing a currently used program, a RAM for storing the renewal program transmitted from the server, and an information collection controller for rewriting the currently used program in the flash memory with the renewal program. Upon receipt of the renewal program from the server, the information collection controller rewrites the currently used program with the renewal program.
The rewrite condition includes that a key switch is off, i.e. an engine is stopped.
In the rewrite control system for an on-board program disclosed in Patent Literature 1, the rewriting process using the renewal program is performed when the engine is stopped, and therefore, there is a possibility that the rewriting process could not be normally terminated.
Specifically, the construction machine includes the engine, a generator connected to the engine, and an electric storage device for storing an electric power generated by the generator. The rewriting process is considered to be performed using the electric power stored in the electric storage device.
However, when an electric power required for the rewriting process is not stored in the electric storage device, the rewriting process is terminated in the middle.
In this case, not only the rewriting process is abnormally terminated, but also there is a possibility that the currently used program may be broken, so that the construction machine cannot be started.